iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
Mobile Development

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始系列 第 14

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day14

  • 分享至 

  • xImage
  •  

Day14 形狀

在真正進入到Vision Pro的開發前,還有幾個UI元件必須要熟悉,而形狀就是一個很常用到的元件,不管是在畫圖或者畫資料圖,都可以用形狀來去達成。

首先就是矩形Rectangle,例如:

Rectangle()
    .fill(Color.blue)
    .frame(width: 60, height: 60)

在這裡也使用到了屬性fill來填滿藍色,與frame設定寬度與高度。

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/201626078leXyBJKeo.jpg

Rectangle也可以加入圓角屬性,例如:

RoundedRectangle(cornerRadius: 10)
    .fill(Color.blue)
    .frame(width: 60, height: 60)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/201626070RcLm8DH1C.jpg

Rectangle加入圓角,並且增加邊界線,例如:

RoundedRectangle(cornerRadius: 10)
    .stroke(Color.blue, style: StrokeStyle(lineWidth: 10, lineCap: .round, lineJoin: .round))
    .frame(width: 60, height: 60)

使用屬性stroke來設定邊框的屬性,例如這裡設定邊框顏色為藍色、寬度為10,round表示當邊線遇到轉折處時,會變成圓滑。

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607lQRWvClWSg.jpg

第二個形狀為圓形Circle,例如:

Circle()
    .fill(Color.blue)
    .frame(width: 60, height: 60)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607iIsBmOxyLl.jpg

Circle一樣可以增加邊界線,例如:

Circle()
    .stroke(Color.blue, style: StrokeStyle(lineWidth: 10, lineCap: .round, lineJoin: .round))
    .frame(width: 60, height: 60)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/2016260758a6GDCLNZ.jpg

Ellipse為橢圓形,例如:

Ellipse()
    .fill(Color.blue)
    .frame(width: 60, height: 100)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607EzNsJCEEqH.jpg

Ellipse增加邊界線,例如:

Ellipse()
    .stroke(Color.blue, style: StrokeStyle(lineWidth: 10, lineCap: .round, lineJoin: .round))
    .frame(width: 60, height: 100)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/2016260731BB4FuEA7.jpg

Capsule為類似膠囊的形狀,例如:

Capsule()
    .fill(Color.blue)
    .frame(width: 60, height: 120)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607s4uGBWGcQV.jpg

Capsule增加邊界線,例如:

Capsule()
    .stroke(Color.blue, style: StrokeStyle(lineWidth: 10, lineCap: .round, lineJoin: .round))
    .frame(width: 60, height: 120)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607b9NkCyT4CV.jpg

這裡也舉一個簡單使用形狀的例子,使用圓形加入框線並且放大,例如:

Circle()
    .stroke(.blue, style: StrokeStyle(lineWidth: 20, lineCap: .round))
    .frame(width: 237)

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607QA1rfsLM5s.jpg

加入trim可以設定形狀的範圍,例如:

Circle()
    .trim(from: 0, to: 0.8)
    .stroke(.blue, style: StrokeStyle(lineWidth: 20, lineCap: .round))
    .frame(width: 237)

trim從0畫到0.8,而0的位置在三點鐘的方向,然後逆時針方向一直到80%的位置。

顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607W7RGJV0vU2.jpg

所以調整一下trim的範圍,修改成0.1到0.9,然後旋轉90度,例如:

Circle()
    .trim(from: 0.1, to: 0.9)
    .stroke(.blue, style: StrokeStyle(lineWidth: 20, lineCap: .round))
    .frame(width: 237)
    .rotationEffect(.degrees(90))

就可以畫出這樣的圖形,顯示如圖:

https://ithelp.ithome.com.tw/upload/images/20240814/20162607PTNuat3i5x.jpg

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day14 [完]


上一篇
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day13
下一篇
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day15
系列文
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言